<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>扩展运算符 ****</title>
</head>
<body>
    <script>
        //扩展运算符  ...  rest 参数与扩展运算符逆运算
        //数组的展开    扩展运算符可以将数组或者对象转为『逗号』分割的参数序列  [1,2,3] =>   ...[1,2,3] =>  1,2,3
        // let arr = ['华为','1+','小米','realme'];

        // arguments 的演示
        // function add(){
        //     console.log(arguments);
        // }
        // add(...arr);

        // rest 参数演示
        // function add(...args){
        //     console.log(args);
        // }

        // add(...arr); // add('华为','1+','小米','realme')

        //应用克隆数组
        // let arr2 = [...arr];

        //对象的展开  ES2018  ES9
        // let obj = {a: 100, b: 200}; // ...obj => a: 100, b: 200
        // let newObj = {...obj};
        let skillOne = {
            q: '天音波'
        };

        let skillTwo = {
            w: '金钟罩'
        };

        let skillThree = {
            e: '催筋断骨'
        };

        let skillFour = {
            r: '神龙摆尾',
            q: '回音击'
        };

        let seng = {...skillOne, ...skillTwo, ...skillThree, ...skillFour}

        console.log(seng);


        //关于 rest 参数和扩展运算符的识别方式
        // 关键是书写的位置
        //   ... 位于函数形参位置     rest 参数    function f(...args){}   let fn = (...args) => {}
        //       其他位置            扩展运算符
    



       
    </script>
    
</body>
</html>